Author |
Message |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Thu Dec 24, 2009 5:59 pm (написано за 15 секунд)
Post subject: Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript
|
|
Dklab Realplexor — это Comet-сервер, позволяющий держать одновремено сотни тысяч долгоживущих открытых HTTP-соединений с браузерами пользователей. JavaScript-код, запущенный в браузере, подписывается на один или несколько каналов Realplexor-а и вешает обработчик на поступление данных. Сервер может в любой момент записать сообщение в один из таких каналов, и оно будет моментально передано всем подписчикам (хоть одному, хоть тысяче), в режиме реального времени и с минимальной нагрузкой для сервера. dklab.ru/lib/dklab_realplexor/
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Sat Dec 26, 2009 4:46 am (спустя 1 день 10 часов 46 минут; написано за 16 секунд)
Post subject:
|
|
* Dklab Realplexor 2009-12-26: v1.23 - [BUG] Empty identifier passed to IN line ("identifier=") caused warnings. - [SPD] Lower the number of useless debug lines and connection's name() calls. - [BUG] Improved init script: more time to restart and better signal handling. * Dklab Realplexor 2009-12-24: v1.22 - [BUG] SIGPIPE causes the script to restart on some unexpected client's disconnects.
|
|
Back to top |
|
 |
Melethron
Заглянувший
Joined: 11 Mar 2009
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Fri Jan 01, 2010 6:57 pm (спустя 6 дней 14 часов 10 минут; написано за 37 секунд)
Post subject:
|
|
Приветствую! А как это можно установить на денвере?
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Sun Jan 03, 2010 12:07 pm (спустя 1 день 17 часов 10 минут; написано за )
Post subject:
|
|
Это не для Денвера штуковина, в общем...
|
|
Back to top |
|
 |
Melethron
Заглянувший
Joined: 11 Mar 2009
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Thu Jan 07, 2010 3:33 am (спустя 3 дня 15 часов 25 минут; написано за 48 секунд)
Post subject:
|
|
Было бы здорово, если бы можно было тестировать свои скрипты с Realplexor на денвере.
|
|
Back to top |
|
 |
Ivan1986
Участник форума
Warnings: 2
Joined: 09 Oct 2007
Posts: 807
Карма: 38 поощрить/наказать
|
Posted: Thu Jan 07, 2010 3:44 am (спустя 11 минут; написано за 37 секунд)
Post subject:
|
|
Melethron
Если бы windows была операционной системой, а не поделкой майкрософта :)
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Fri Jan 08, 2010 3:10 am (спустя 23 часа 26 минут; написано за 48 секунд)
Post subject:
|
|
Melethron wrote: |
Было бы здорово, если бы можно было тестировать свои скрипты с Realplexor на денвере. | Будет можно в будущем, функционал в разработке.
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Jan 09, 2010 11:42 pm (спустя 1 день 20 часов 31 минуту; написано за 1 минуту 24 секунды)
Post subject:
|
|
Здравствуйте, у меня проблема. Установил все по мануалу, при попытке добавить сообщение в канал выскакивает такое исключение: Quote: |
Fatal error: Uncaught exception 'Dklab_Realplexor_Exception' with message 'No Content-Length header in response headers: | Дальше идет шапка, в которой нет Content-Length, но заголовок сообщает "HTTP/1.1 200 OK", с чем это может быть связанно?
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Sun Jan 10, 2010 12:23 am (спустя 41 минуту; написано за 34 секунды)
Post subject:
|
|
Прошу прощения, указал WAIT адрес при подключении со стороны сервера, вместо IN адреса. Теперь все работает, как часы.
|
|
Back to top |
|
 |
Melethron
Заглянувший
Joined: 11 Mar 2009
Posts: 13
Карма: 0 поощрить/наказать
|
Posted: Sun Jan 10, 2010 3:54 am (спустя 3 часа 30 минут; написано за 1 минуту 17 секунд)
Post subject:
|
|
Дмитрий Котеров wrote: |
Будет можно в будущем, функционал в разработке. | Это очень здорово! Спасибо вам за всё это!
|
|
Back to top |
|
 |
Solomina
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jan 15, 2010 2:54 am (спустя 4 дня 22 часа 59 минут; написано за 3 минуты 39 секунд)
Post subject: Dklab_Realplexor: Comet-сервер промышленного масштаба с API для PHP и JavaScript
|
|
Прошу прощения за глупый вопрос. А как это можно запустить на обычном платном виртуальном хостинге? Просто распаковать в корень сайта? Или у сайтмейкера с "обычными" мозгами ничего не получится? Сможете подсказать, какие шаги предпринять?
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Fri Jan 15, 2010 12:21 pm (спустя 9 часов 27 минут; написано за 39 секунд)
Post subject:
|
|
Solomina
Вам нужен как минимум VDS, или же виртуальный хостинг с возможностью запускать демонов (как правило, такие тарифные планы стоят существенно больше).
|
|
Back to top |
|
 |
Solomina
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jan 15, 2010 1:43 pm (спустя 1 час 22 минуты; написано за 4 минуты 55 секунд)
Post subject: Dklab Realplexor
|
|
Правильно ли я поняла, что для работы с Dklab Realplexor сначала нужно освоить его на локальной машине с Линуксом, а создать в интернете проект возможно только с помощью администраторов web-сервера, так как настроить его под эту штуковину очень сложно? А существует ли какая-нибудь библиотека, обеспечивающая общение на сайте, которую можно просто в папке загрузить на веб- сервер и обращаться к её методам из php скриптов сайта. Судя по описанию и примерам,Dklab Realplexor очень хорошая штука, но всё же не понятно как её использовать на сайтах.
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Sat Jan 16, 2010 2:02 am (спустя 12 часов 19 минут; написано за )
Post subject:
|
|
Эта библиотека, насколько я понял, расчитана больше на владельцев либо VDS, либо собственного сервера, и умения его настроить. В других случаях придется пользоваться менее производительными решениями.
|
|
Back to top |
|
 |
Solomina
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Jan 16, 2010 1:23 pm (спустя 11 часов 20 минут; написано за 1 минуту 14 секунд)
Post subject: Dklab_Realplexor
|
|
Ну, что-ж! Видимо опять придётся самой писать "менее производительное решение". А я уж думала - Вот оно -Счастье!
|
|
Back to top |
|
 |
chop-chop
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Jan 18, 2010 4:03 pm (спустя 2 дня 2 часа 39 минут; написано за 5 минут 57 секунд)
Post subject:
|
|
Ну если вы можете сама написать хоть какое то решение то посмотрите в сторону тех длинных запросов. Аякс открывает соединение, скрипт на сервере крутится в цикле (внутри цикла обязательно sleep(1)) пока не увидит новое сообщение. Как только появляется новое сообщение - сразу же вывод. Аякс получает сообщение, обрывает соединение и сразу же открывает новое. Нагрузка на сервер намного меньше чем при запросе через каждые две секунды. Доставка сообщений мгновенная. Если ещё сообщения хранить в мемкэше, то вообще все в порядке будет. Для промышленных решений подойдет врядли, а вот для ваших точно подойдет.
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Jan 18, 2010 9:56 pm (спустя 5 часов 53 минуты; написано за 34 секунды)
Post subject:
|
|
У Event-Lib нет проблемы с debian amd64? Никак не могу поставить.
|
|
Back to top |
|
 |
chop-chop
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Jan 19, 2010 4:02 pm (спустя 18 часов 6 минут; написано за 9 минут 6 секунд)
Post subject:
|
|
Я тоже замучился ставить на Кубунту. Потратил не мало времени. Только что вот закончил) Поставил я realplextor, запустил пишет что то не то смотри лог. В логе написано нет libevent и написано как его установить. Конкретно: apt-get install libevent-dev gcc perl -MCPAN -e "install Event::Lib" первое проходит, второе начинает ругаться долго мучался пытаясь понять что да как решил удалить все установленное apt-get (что касалось эвентлиба), и собрать вручную скачал www.monkey.org/~provos/libevent-2.0.3-alpha.tar.gz
тут то и открылась истина - одного gcc было мало доустановил apt-get install libc6-dev g++ библиотека собралась на ура. после этого perl -MCPAN -e "install Event::Lib" все без ошибок сервер тоже запустился. Видимо более правильная инструкция по установке должна выглядеть так apt-get install libevent-dev libc6-dev g++ gcc perl -MCPAN -e "install Event::Lib"
|
|
Back to top |
|
 |
Lance
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Jan 21, 2010 6:04 pm (спустя 2 дня 2 часа 2 минуты; написано за 1 минуту 18 секунд)
Post subject: Sandbox
|
|
Hi Dmitry Kóterov, This looks really cool ! I try the sand box and it does not seem to do anything? (Safari OS X) It loads ok but does not seem to post any data to any of the chat channels.. Thanks, Lance
|
|
Back to top |
|
 |
aleks_raiden
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jan 22, 2010 6:44 pm (спустя 1 день 39 минут; написано за 4 минуты 30 секунд)
Post subject: Empty channels
|
|
Приветствую, Используем Realplexor в своем стартапе, возник вот какой вопрос: Как я понимаю, если канал никто не слушает и прошло указанное в конфиге время (CLEAN_ID_AFTER), канал будет очищен. Но если канал не слушается, но я посылаю в него сообщения, то получится что сначала заполнится очередь буфера (по умолчанию, 30 последних), потом же будут сохранятся только последние 30 сообщений, так? А по прошествии CLEAN_ID_AFTER вся очередь очистится и, если я дальше посылаю сообщения, они снова будут сохранятся в буфер и так снова по кругу? Возможно ли тогда сделать такой режим, чтобы буфер не очищался а всегда хранился в виде N последних сообщений? и очищался только если его никто не слушает и не пишет в него CLEAN_ID_AFTER время?
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Sun Jan 24, 2010 3:15 pm (спустя 1 день 20 часов 30 минут; написано за 2 минуты 24 секунды)
Post subject:
|
|
Смог установить Event-Lib на 64битной системе только с исходников в принудительном режиме (два теста проваливаются, причины неизвестны). Но после этого проблемы не кончились. При 300 одновременных событиях, рассылаемых 80 подписчикам, cpu улетает в 100%. В среднем процесс perl часто отнимает 15-20% процессора, даже при малом количестве подписчиков. Я думаю, что так быть не должно, с чем это может быть связанно?
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Mon Jan 25, 2010 2:27 am (спустя 11 часов 12 минут; написано за 1 минуту 6 секунд)
Post subject:
|
|
Lance wrote: |
This looks really cool ! I try the sand box and it does not seem to do anything? (Safari OS X) It loads ok but does not seem to post any data to any of the chat channels.. | Very strange. We tested it in all modern browsers. Could you please test it on Safari and immediately after that - on Firefox?
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Mon Jan 25, 2010 2:31 am (спустя 4 минуты; написано за 1 минуту 32 секунды)
Post subject:
|
|
aleks_raiden wrote: |
Как я понимаю, если канал никто не слушает и прошло указанное в конфиге время (CLEAN_ID_AFTER), канал будет очищен. | Это не так. Канал будет очищен, если с момента последней ЗАПИСИ в него прошло как минимум CLEAN_ID_AFTER секунд. Читатели не учитываются. aleks_raiden wrote: |
Возможно ли тогда сделать такой режим, чтобы буфер не очищался а всегда хранился в виде N последних сообщений? и очищался только если его никто не слушает и не пишет в него CLEAN_ID_AFTER время? | Вы можете присвоить CLEAN_ID_AFTER очень большое число - например, 1 год (3600 * 24 * 365).
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Jan 25, 2010 12:15 pm (спустя 9 часов 44 минуты; написано за 6 минут 16 секунд)
Post subject:
|
|
Кроме производительности (возможно это просто неправильная конфигурация сервера, или недостаток ресурсов, или проблема Event-Lib на amd64), есть еще вопрос. У меня есть два канала, допустим «global» и «unique», клиент слушает два этих канала и с этим все в порядке (если судить по GET параметрам запроса). На сервере происходит два события, например добавление контента и обновление статистики, первое событие отправляется в «unique», а второе в «global». Это происходит при одном запросе, но через два вызова send() из realplexor php api. Проблема в том, что второе событие из двух всегда не доходит до пользователя. Если их поменять местами, то, соответственно, придет другое событие из двух, а оставшееся - нет. Если добавить 10 send(), то первое приходит нормально, а остальные не доходят. С слушателями все в порядке, если одно из этих событий произойдет на другой странице - данные приходят. А если на одной странице два send() в разный набор каналов, то не приходит. В чем может быть причина подобного поведения?
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Jan 25, 2010 5:15 pm (спустя 4 часа 59 минут; написано за 24 секунды)
Post subject:
|
|
Постоянно такие ошибки: Quote: |
<GEN592021> line 1 during global destruction. Jan 24 19:38:52 realplexor/dklab_realplexor.conf: Use of uninitialized value $fh in delete at Storage/PairsByFhs.pm line 27, <GEN592021> line 1 during global destruction. Jan 24 19:38:52 realplexor/dklab_realplexor.conf: #011(in cleanup) Can't call method "debug" on an undefined value at Event/Lib/Connection.pm line 82, <GEN592021> line 1 during global destruction. Jan 24 19:38:52 realplexor/dklab_realplexor.conf: Use of uninitialized value $fh in delete at Storage/ConnectedFhs.pm line 27, <GEN592021> line 1 during global destruction. Jan 24 19:38:52 realplexor/dklab_realplexor.conf: Use of uninitialized value $fh in delete at Storage/ConnectedFhs.pm line 27, <GEN592021> line 1 during global destruction. Jan 24 19:38:52 realplexor/dklab_realplexor.conf: Use of uninitialized value $fh in delete at Storage/PairsByFhs.pm line 27, <GEN592021> line 1 during global destruction. | Что это значит?
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Mon Jan 25, 2010 6:23 pm (спустя 1 час 8 минут; написано за 43 секунды)
Post subject:
|
|
А, с этим разобрался. Это при неправильном отключении такие ошибки. Извиняюсь.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Tue Jan 26, 2010 1:59 am (спустя 7 часов 36 минут; написано за 1 минуту 12 секунд)
Post subject:
|
|
Аноним wrote: |
Если добавить 10 send(), то первое приходит нормально, а остальные не доходят. | Не удается воспроизвести. Более того, на демо-странице rutvit.ru/realplexor/demo?ids=aaa при выборе внизу "Повторить 2 раза" как раз производится отправка нескольких сообщений в один канал, примерно вот таким кодом: for ($i = 0; $i < max(@$_POST['repeat'], 1); $i++) { $mpl->send($ids, $_POST['message'] . (@$_POST['repeat'] > 1? " #$i" : "")); } Уточните, пожалуйста, шаги по воспроизведению.
|
|
Back to top |
|
 |
Lance
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jan 27, 2010 6:23 am (спустя 1 день 4 часа 24 минуты; написано за 1 минуту 18 секунд)
Post subject: Test on Firefox (Sandbox demo no go os x)
|
|
Hi Dmitry Kóterov, I also tested on Firefox 3.5.2 OS X 10.5.8 no response on any channel in the sandbox. Is anyone else having the demo work on os X? Regards, Lance
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Wed Jan 27, 2010 12:09 pm (спустя 5 часов 45 минут; написано за 6 минут 57 секунд)
Post subject:
|
|
Дмитрий Котеров wrote: |
Уточните, пожалуйста, шаги по воспроизведению. | Вот пример:У меня к слушателю, который слушает 'one' и 'three' данные data2 не доходят. Скорее всего, конечно, это у меня где-то ошибка. Но на всякий случай проверьте. И еще, я думаю это не нормально, если от одного ядра Intel(R) Core(TM) i7 CPU @ 2.67 процесс perl при 20-30 подписчиках (и 50 каналах) при обновлении занимает 30-60% процессора? У вас используется библиотека EventLib на какой архитектуре, 64 бита? Не может ли с этим быть проблем, просто тесты при make test проваливались и я установил её принудительно. А теперь при большом количестве сообщений заметно понижается производительность, хотя это "большое количество", на самом деле, сравнительно небольшое — 100-200.
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Thu Jan 28, 2010 6:28 pm (спустя 1 день 6 часов 18 минут; написано за 43 секунды)
Post subject:
|
|
По моему, даже если один адресат, надо передавать массивом:
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Fri Jan 29, 2010 4:25 am (спустя 9 часов 57 минут; написано за 1 минуту 32 секунды)
Post subject:
|
|
LanceHi A follow-on to this...It was the google translator page. I thought I might try to find the original URL and once pointed to that it works great!! Very keen on using this ;) Thanks, Lance
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Sat Jan 30, 2010 6:07 am (спустя 1 день 1 час 41 минуту; написано за 4 минуты 1 секунду)
Post subject:
|
|
New version - 1.24. Many speed improvements. To achieve maximum speed, try to set VERBOSITY to 0 or 1 in your configuration. Also get rid of "automatic" cursors: they use Math::BigFloat (still), and Math::BigFloat is very slow. Specify cursors manually in $rpl->send() API method. * Dklab Realplexor 2010-01-30: v1.24 - [BUG] Avoid warnings in log on unexpected disconnect. - [NEW] Refactoring and profiler support. - [SPD] Do not create extra shell while calling ulimit. - [NEW] Support for per-config log facility. - [SPD] Profiler tool with IN line ignorance. Avoid BigFloat in events: 45% speedup. Apache ab patched utility. - [SPD] Keep channels pre-sorted after addition. It speedups 60%, because we need less cursor comparisions. - [SPD] STDOUT buffering in non-verbose mode. More verbosity levels. Logger speedup. Custom config for profiler script. Current profiler map attached. :) P.S. This new version passes all auto-tests, but if you find a bug in it, please report it here.
Description: |
|
Filesize: |
45.96 KB |
Viewed: |
163407 Time(s) |

|
|
|
Back to top |
|
 |
Аноним
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Jan 30, 2010 3:56 pm (спустя 9 часов 49 минут; написано за 11 секунд)
Post subject:
|
|
Спасибо, сейчас потестируем на реальном проекте.
|
|
Back to top |
|
 |
Дмитрий Котеров
Администратор

Joined: 10 Mar 2003
Posts: 13665
Карма: 411 поощрить/наказать
|
Posted: Mon Feb 01, 2010 1:22 pm (спустя 1 день 21 час 26 минут; написано за 6 секунд)
Post subject:
|
|
А что у Вас за проект?
|
|
Back to top |
|
 |
aleks_raiden
Guest
Карма: 388 поощрить/наказать
|
Posted: Tue Feb 02, 2010 5:41 pm (спустя 1 день 4 часа 18 минут; написано за 59 секунд)
Post subject:
|
|
У нас уже несколько недель на тестовом сервере работает ок, вчера перевел на новую версию, пока вопросов нет. Что за приложение - веб-система трейдинговая.
|
|
Back to top |
|
 |
Sign63
Guest
Карма: 388 поощрить/наказать
|
Posted: Sat Feb 06, 2010 1:21 pm (спустя 3 дня 19 часов 39 минут; написано за 5 минут 11 секунд)
Post subject:
|
|
здравствуйте, я пытаюсь использовать multiplexor из программы-клиента на Си в бинарнике client.c вставляю строку GET 127.0.0.1:8088/?identifier=1z2y3z HTTP/1.0\r\n\r\n мультиплексор пишет что принято, клиент онлайн потом передаю данные через telnet, программа client.c ничего не принимает/не отображает Не могли бы вы мне помочь разобраться, как разработчик multiplexor'a? Code (c): | скопировать код в буфер обмена | #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h>
void error(char *msg) { perror(msg); exit(0); }
int main(int argc, char *argv[]) { int sockfd, portno, n; struct sockaddr_in serv_addr; struct hostent *server;
char buffer[256]; if (argc < 3) { fprintf(stderr,"usage %s hostname port\n", argv[0]); exit(0); } portno = atoi(argv[2]); sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) error("ERROR opening socket"); server = gethostbyname(argv[1]); if (server == NULL) { fprintf(stderr,"ERROR, no such host\n"); exit(0); } bzero((char *) &serv_addr, sizeof(serv_addr)); serv_addr.sin_family = AF_INET; bcopy((char *)server->h_addr, (char *)&serv_addr.sin_addr.s_addr, server->h_length); serv_addr.sin_port = htons(portno); if (connect(sockfd,&serv_addr,sizeof(serv_addr)) < 0) error("ERROR connecting"); printf (www.opengroup.org/onlinepubs/009695399/functions/printf.html)("Please enter the message: "); bzero(buffer,256); fgets(buffer,255,stdin); n = write(sockfd,buffer,strlen(buffer)); if (n < 0) error("ERROR writing to socket"); bzero(buffer,256); n = read(sockfd,buffer,255); if (n < 0) error("ERROR reading from socket"); printf (www.opengroup.org/onlinepubs/009695399/functions/printf.html)("%s\n",buffer); return 0; } |
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Sat Feb 06, 2010 7:02 pm (спустя 5 часов 40 минут; написано за )
Post subject:
|
|
Так Вы запрос неполный отправляете, он же должен кончаться на \r\n\r\n, а Вы считываете и отправляете лишь одну строчку (используя fgets). Вам вообще нужно либо использовать неблокирующие операции чтения/записи, либо читать из сокета в отдельной нити, иначе Вы все равно ничего внятного получить не сможете.
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Sun Feb 07, 2010 12:05 am (спустя 5 часов 2 минуты; написано за 34 секунды)
Post subject:
|
|
подправил кое-что, но не получается сделать non blocking чтение сокета Code (c): | скопировать код в буфер обмена | #include <unistd.h> #include <fcntl.h> . . sockfd = socket(AF_INET, SOCK_STREAM, 0); fcntl(sockfd, F_SETFL, O_NONBLOCK); n = read(sockfd,buffer,255); . | Выдает ошибку
|
|
Back to top |
|
 |
Юрий Насретдинов
Модератор

Joined: 13 Mar 2003
Posts: 8642
Карма: 197 поощрить/наказать
Location: 007 495
|
Posted: Sun Feb 07, 2010 2:57 am (спустя 2 часа 52 минуты; написано за 1 минуту 16 секунд)
Post subject:
|
|
Гость wrote: |
Выдает ошибку ERROR reading from socket: Transport endpoint is not connected | Ну что Вы, пишете на C, а ведете себя как человек, впервые увидевший компьютер :). По-моему, текст ошибки достаточно четкий смысл имеет, переведите :).
|
|
Back to top |
|
 |
Guest
Карма: 388 поощрить/наказать
|
Posted: Sun Feb 07, 2010 11:26 am (спустя 8 часов 29 минут; написано за 4 минуты 29 секунд)
Post subject:
|
|
Си я изучаю только первую неделю, поэтому испытываю затруднения. Я так понимаю что для мастдая нужно использовать winsock api и выше приведённое работать не будет? И еще Дмитрий упоминал на хабре что будет писать клиент на других языках. Когда ожидать?
|
|
Back to top |
|
 |
|